package com.secsys.service;

import java.util.HashMap;
import java.util.List;

import com.secsys.dto.StoPriceearningDTO;
import com.secsys.model.TbStoPriceearning;
import com.secsys.model.TbStoStock;


public interface StoPriceearningService extends Service<TbStoPriceearning, Integer> {
	/**
	 * 根据股票ID查找查找TbStoPriceearning（近五年每股收益数据）对象数组
	 * @param 	stockCode
	 * 			股票代码，TbStoStockDTO的stockCode
	 * @return
	 * 			List<StoPriceearningDTO>（股票日线数据）对象数组
	 */
	public List<StoPriceearningDTO> queryStoPriceearningByStockCode(String stockCode);
	
	/**
	 * 根据“基本信息对象”tbStoStock查找TbStoPriceearning（近五年每股收益数据）对象数组
	 * @param 	tbStoStock
	 * 			股票基本信息POJO对象，TbStoStockDTO对象
	 * @return
	 * 			List<TbStoPriceearning>（股票日线数据）对象数组
	 */
	public List<StoPriceearningDTO> queryStoPriceearningByTbStoStock(TbStoStock tbStoStock);
	
	/**
	 * 根据股票代码和年份，查找该股当年的“每股收益数据”信息StoPriceearningDTO对象数组
	 * @param	stockCode
	 * 			给定的股票代码
	 * @param 	year
	 * 			某个年份
	 * @return
	 * 			List<StoPriceearningDTO>（近五年每股收益数据）对象数组
	 */
	public List<StoPriceearningDTO> queryStoPriceearningByStockCodeAndYear(int stockCode,String year);
	
	/**
	 * 根据“基本信息对象”tbStoStock和年份，查找该股当年的“每股收益数据”信息StoPriceearningDTO对象数组
	 * @param 	tbStoStock
	 * 			股票基本信息POJO对象，TbStoStockDTO对象
	 * @param 	year
	 * 			某个年份
	 * @return
	 * 			List<StoPriceearningDTO>（近五年每股收益数据）对象数组
	 */
	public List<StoPriceearningDTO> queryStoPriceearningByStockCodeAndYear(TbStoStock tbStoStock, String year);
	
	
	/**
	 * 根据给定的年份，查找StoPriceearningDTO（近五年每股收益数据）对象数组
	 * @param 	year
	 * 			某个年份
	 * @return
	 * 			List<StoPriceearningDTO>（近五年每股收益数据）对象数组
	 */
	public List<StoPriceearningDTO> queryStoPriceearningByYear(String year);
	
	/**
	 * 根据给定的年限范围（startYear-endYear），查找StoPriceearningDTO（近五年每股收益数据）对象数组
	 * @param 	startYear
	 * 			开始年份
	 * @param	endYear
	 * 			结束年份
	 * @return
	 * 			List<StoPriceearningDTO>（近五年每股收益数据）对象数组
	 */
	public List<StoPriceearningDTO> queryStoPriceearningByYearRange(String startYear,String endYear);
	
	/**
	 * 财务分析之“利润构成与盈利能力”
	 * @author tiger.hu
	 * @param 	startYear
	 * 			开始年份
	 * @param	endYear
	 * 			结束年份
	 * @param	num
	 * 			"每股收益数据"在年限范围之内，上升或下降的数目，比如：新的一年比旧年上升20%为：+1.2，下降了10%为-10%，则参数为2011-1-1,2010-1-1,1.2
	 * @param	updown
	 * 			代表上升、下降，1上升、0下降
	 * @return
	 * 			int计算得到的数目
	 */
	public int countStoPriceearningBySearch(String startYear,String endYear,double num,int updown);
	
	/**
	 * 财务分析之“利润构成与盈利能力”
	 * @param 	startYear
	 * 			开始年份
	 * @param	endYear
	 * 			结束年份
	 * @param	num
	 * 			"每股收益数据"在年限范围之内，上升或下降的数目，比如：新的一年比旧年上升20%为：+1.2，下降了10%为-10%，则参数为2011-1-1,2010-1-1,1.2
	 * @param	updown
	 * 			代表上升、下降，1上升、0下降
	 * @param	offset
	 * 			分页开始值
	 * @param	count
	 * 			分页显示多少个
	 * @return
	 * 			List<StoPriceearningDTO>（近五年每股收益数据）对象数组
	 */
	public HashMap<String, List> queryStoPriceearningBySearch(String startYear,String endYear,double num,int updown,int offset,int count);
}
